home *** CD-ROM | disk | FTP | other *** search
- .fill
- .justify
- .rm 70
- .m1 0
- .m2 0
- .m3 0
- .m4 0
- .np
- .ls 1
- .ul off
- .nr a 1
- .nr b 0
- .nr a -1
- .autoparagraph
- .define UNIT
- .br
- .nr a +1
- .nr b 0
- .nofill
- .lm 0
- .cl 0 _@_{$1 $2 $3 $4 link $1 $2 $3 $4_}
- @na. $1 $2 $3 $4 $5 $6 $7 $8 $9
- .lm 1
- .fill
- .br
- .en
- .define SUBUNIT
- .br
- .nr b +1
- .nofill
- .lm 0
- .cl 0 _@_{$1 $2 $3 $4 link $1 $2 $3 $4_}
- @na.@nb. $1 $2 $3 $4 $5 $6 $7 $8 $9
- .lm 1
- .fill
- .en
- Document Citadel.Guide
- .br
- _@REMARK $VER: Citadel.guide 1.0 (27.11.94)
- .UNIT MAIN
- The documentation contained is a collection of information based on
- the original Citadel 86 documentation by Hue, JR. The mistakes are mine.
- It is pretty much a complete reference manual and every attempt is being
- made to make this a complete manual with all details explained so that
- even the most novice of users can understand how to setup and run a bbs.
- The most important thing is to read this documentation and give it a try!
- .UNIT Citadel History
- What is Citadel? Citadel is a Freeware project. The source, executables
- and all the documentation are available for no cost to you. If you paid
- for this, someone is ripping you off.
- Citadel was written in mid-December 1981 by CrT.
- Miraculously, it ran three days unattended over
- New Year's, collecting some remarkably favorable reactions.
- During the months that it ran at 633-3282 (ODD-DATA),
- Citadel became one of the more popular BBs in town, and
- there was some disappointment when a hardware failure forced the system
- down in February of 1982. But in January CrT had published the
- source code in BDS C, putting it in the public domain.
- David Mitchell brought up the next incarnation of the Citadel
- program in April of 1982, running on hardware provided by Richard
- Knox. Called the Island Communication System, it is located on
- Bainbridge Island in Puget Sound. ICS has about 30 regular users
- and about 120 log entries. Newcomers find it easy to learn, and
- often leave messages praising it. Some of the system's daily
- users are in Boston.
- Citadel is descended from DandD.pas, an adventure game editor/driver.
- It is arranged as a series of rooms, starting with the LOBBY. In each
- room the user can read existing messages and leave more.
- The system was brought up
- with only one room, the LOBBY. Additional rooms were created by
- the users, with room names appropriate to the topics covered.
- Environment: Citadel has had a checkered past. It first ran
- on a 64K Heath H89 with Magnolia CP/M, Hayes Smartmodem (plus
- an acoustic on another port) and BDS C V1.32.
- As time went on, Citadel was ported to the Amiga, Atari, and even
- the MAC. Citadel runs on many platforms and since the source is available
- will probably run on most future ones too.
- .UNIT What is Citadel-68K
- Citadel-68K(also know as Amiga Citadel) is a single user BBS program.
- It is a direct decendant of the 3.42 Citadel 86 by Hue, JR in Minnesota.
- Citadel comes in two flavors, a
- 68000 based version that will run on any Amiga and
- an optimized 68030 based. Citadel is able to run on any Amiga model and
- under any OS from 1.2 to the latest. The CTDL(main BBS executable) and
- CONFG(BBS configuration tool) come in the two forms, the utilities come in the
- 68000 version only. The Amiga Citadel is a direct port from the IBM
- Citadel 86 by Hue Jr. It originally was done by Jay Johnston, who did
- not have the time to continue it so I, Tony Preston now maintain it. I don't
- have the time either, but I try...
- .SUBUNIT Support Systems
- Probably the hardest part of running a Citadel is getting started. Citadel
- is not the most common of BBS programs even though it is free.
- You should be able to read this document and setup your configuration file,
- run `CONFG' and then startup the BBS with no problems. Since this rarely
- happens and having a helping hand from someone that has already done what
- you are trying to do can make things easier, you might want to try one of
- these three places for help and information.
- The first is The Amiga
- Zone, my BBS(609-953-8159). It is available 24 hours and is where you will
- find the most support and help. I will often chat with people that call for
- help and alway try to answer mail messages promptly.
- Since calling long distance may not be an option for you, check around in
- your area and see if you can find a local Citadel where you
- can take major advantage of the networking features built into Citadel! The
- `C86Net' contains several support rooms where you can post your questions and
- usually get quick answers. These rooms are "Citadel 68K" and "Sysop Only".
- If your local sysop will let you have some Long Distance credit you can send
- me domain mail at "tony preston@The Amiga Zone.NJ". You will learn more about
- domain mail later. There are many Citadels active on the network so you
- might check the `BBS List' included in this document to see if one is local
- to you.
- finally, you can send me mail via Internet. I will answer the mail quickly
- monday thru friday. Anything sent over the weekend will wait till monday.
- you can reach me at "apreston@isd.csc.com" or "tony-preston@cup.portal.com".
- .SUBUNIT Hardware required
- The minimum configuration for `Citadel'
- is a 512K Amiga with 2 floppies. This will allow you to run the BBS, but
- probably not much more. There are some people that have run Citadel on such
- a small system. Most either expand their system or just quit running it.
- 1 MB of memory and a hard drive is really the
- practical limit. I have created and ran a test bbs on an A500 with 1 MB
- of memory and 2 floppies. I would recommend that you have 2 MBs and as
- a minimum a 20 MB HD for the BBS.
- .SUBUNIT Requirements
- Citadel will run on any Amiga Model. There are some minor problems with
- running CONFG and fast memory on A3000s and A4000, but the work around is
- simply to run NOFastMem before running CONFG. These may be fixed at any
- time, but since I do not have an A3000 or A4000, I can't look for the problem.
- Citadel does not need any external support software to run. It relies
- on the Operating System for 100% of the normal functions and is compatible
- with 1.2 through to the latest OS.
- Citadel does not use alot of stack space, but will require that you have
- your stack set to 8K or larger. 8K is more than enough for even the
- largest and most complex Citadel. Citadel will make sure you have at least
- an 8K stack or it will quit with a `Citadel Error'.
- It is important to note is that you really should
- plan on a 24 hour BBs, with a dedicated phone line. A BBS that is available
- from 11pm to 6am is not going to be very popular. I would suggest that you
- do not even consider networking unless your BBS is on a regular schedule.
- .SUBUNIT Citadel Error
- Citadel is a complex system of functions. In any complex system, things
- go wrong. Citadel attempts to validate most things when it starts up.
- Once you have the BBS up and running, you still may run into an occasional
- problem. The first thing to do is to collect sufficient information on
- what exactly is going on. Many times, if you look at the data you might
- be able to solve the problem youself!
- In general, if you get an error and this information does not tell you
- how to correct it, collect as much information as possible and report what
- happended either directly to me or in the Citadel 68k room. The first
- thing to look for is a file called `debug.sys' or `crash.sys'. These files
- should appear in either your audit area, the home area, or the location
- you started up Citadel. I usually will want the information in these
- files(even if it is just a cryptic one line message like "dependant variables
- mismatch", sometimes it tells me exactly where the problem is). The second
- thing I will tell you to do is turn on debug, Here is a general method I
- end up telling people:
- .in +5
- 1) go into the Sysop menu, turn on debug "D" option. You can also do
- this by typing ^D in the console window.
- 2) Shut down your Citadel, "X" option.
- 3) delete debug.sys in the audit area(or save it if it contains
- info I might need. At the least, edit the file and add some
- markers (like two lines of asterisks) at the end of the file.
- 4) Bring up Citadel and attempt to reproduce the problem. If you
- cannot do it locally, you might even ask a remote user to do it
- for you. leave debug on. Note: If you run confg, debug is
- automatically turned off, repeat the above steps to turn it on again.
- 5) archive all the information(using something like lha) and arrange
- to get the information to me. I may call your BBS to download the
- file so make some arrangements in Citadel 68K so I know where it
- is.
- .in -5
- The above may generate alot of output. Much of the output is cryptic
- and may not seem like anything understandable. It is mostly internal
- data and is useful to me.
- From time to time, other errors may appear when you do something that
- you really should not do(like power down the modem and then power it up).
- These will generate errors like:
- .in +5
- Error: [1]IOError = nnnn
- Error: [2]IOError = nnnn
- .in +5
- Reason: nnnn is a result code returned from a serial port i/o, usually
- a dropped carrier(small timing window for a race condition could
- cause this). The error is handled for 99% of the cases in a way
- that will cause Citadel to recover and reset. [1] is the case
- where I check to see what is in the serial port buffer, and [2]
- is when the actual read is done.
- .in -5
- Error: Startup Error Code nn
- .in +5
- Reason: something went wrong during system initialization. The reasons
- are:
- .in +5
- 1 - unable to open intuition.library, you must be 1.2 or greater
- to run Citadel.
- 2 - unable to open graphics.library, same as 1. This error also
- used to mean that the req.library was not in the libs: directory.
- This is no longer a requirement. Citadel does not depend on the
- req.library(versions 3.42.P15 or later anyway).
- 3 - Insufficient Stack space, Citadel versions 3.42.E19 and
- earlier required a large stack, much larger than needed
- (50K). Versions 3.42.P35 and later will require a 8K
- stack or less(I am still adjusting the values down).
- Citadel still
- requires the larger limit just to be cautious.
- 11 - Console Open Error. Catch all for console window errors
- If you are using #WBSCREEN, try without it.
- 25 - Open Serial Port Failed, Well, Citadel could not get to
- the serial port(maybe something else has it open. Note: You
- will not get this error if you run Citadel while it is already
- running since it opens the serial port in a shared mode.
- 31 - Could not create a Port for timer communications, Low
- memory? Trashed system tables? Try a re-boot. This is
- one of those, "you should never get here". If you bug me
- with this type of problem, you had better have a full
- system configuration and alot of details.
- 32 - could not create an I/O request. See 31.
- 33 - Open timer.device failed. See 31.
- .in -5
- Note: In the serial port open errors, and in most cases with debug
- turned on, you will get a text error message of the form:
- 1: Date - Dos Error:nnnn
- 2: (some text as to what happened)
- 3: (some text as to what happened) <-- you may get only one line.
- 4: Reason: <error text>
- 5: Current Directory
-
- Line 1: is the internal error code(less than 100), or the Dos error
- code.
- Lines 2-3: will either be a command(like in the external protocols) and
- a text line, or just one line of text. External commands will display
- the text and command, most errors do not have an external command.
- 4: is the reason the error occured(from the Exec routine Fault).
- 5: is the current directory. This is important if you are trying to
- setup a door for example and in the wrong directory.
- If the problem is reproducable, do it several times and record all possible
- information, especially your system configuration! If it happens just
- once and you can not reproduce it, then still record what you can, check
- things like memory in use, what is running.
- .in -5
- Note: If you have a problem that seems to happen often, realize that I
- rarely have a crash. Pleae check to see that something else is not causing
- the problem. Remove commodities, other programs and see if you can cause
- the problem without that super-duper-whiz-bang mouse accelerator/screen
- blanker! It probably ain't Citadel! If you are running on a 512K system,
- you may just be running out of memory. While every attempt has been made
- to exit in a friendly manner, no guarentees...
- .SUBUNIT Limits
- For the most part,`Citadel'
- only has your imagination as the limits... In practicality, there are some
- real physical limits you will have. Each of these limits can be difficult
- to adjust later so some planning is important at this point.
- You must set a limit on the number of users (`#LOGSIZE'), rooms (`#MAXROOMS'),
- and messages (`#MESSAGEK'). These parameters will directly determine the
- amount of memory used while the BBS is running and the disk space needed to
- support the message base and userlog.
- .UNIT CONFG
- To setup the BBS, you must first configure your system. This means taking
- the example configuration and tayloring it to your liking. The example is
- based directly on `The Amiga Zone'. The first thing you must do is chose
- a name for your BBS (`#NODENAME'), a default banner (see `banners' and
- `#NODETITLE'), enter in your Identification (`#NODEID'). It is this basic
- information that users and other Citadels will know your bbs by. Once you have
- an idea of what
- the theme of your BBS is, you can apply it to the initial room (`#BASEROOM'),
- and floor (`#MAINFLOOR'). These will be the initial place that people are
- located at when they login to your BBS. Now comes the real work. You must
- decide some `basic system parameters' that will define how much disk space
- your system will use. This is important since the smaller the message base
- is, the quicker messages will scroll off. Citadel has a fixed message base
- so that once you configure your system, the disk space usage is constant.
- You will never run out of message space, the BBS will reuse the existing
- space deleting the oldest messages to make room for the new ones.
- Next we have the `USER_PARAMETERS' which define the default `PRIVILEGES'
- for your users. These determine how open your system is(can a user create
- their own account or do you do it?). Whether people are able to use doors,
- or post messages to the network. If you restrict people, then they will have
- to ask you for the privilege(and you will have to give it to those you choose).
- If you make them the default, people will get them automatically, you then
- do not have to do anything. I setup my system to be as automatic as possible.
- People can create their own account and do not need to be validated. The
- example setup is configured that way.
- The most important user is the SYSOP,
- You. There are some parameters that make your life easier. the `sysop_parameters'
- will take care of those. Now we get to `Network' parameters which you can
- skip initially, but will eventually want to look into. Get your BBS up and
- running first before you worry about that.
- The basic BBS has several `areas' you will want to setup. Most people will
- setup a logical assignment that is the root of the BBS disk area (called `#HOMEAREA') and
- make everything a subdirectory off of that. Citadel is pretty flexible, if
- you are running from an A500 with 2 floppies, it will run, even if the size
- will be small!
- CONFG is simple to run. Once you have created the `CTDLCNFG.SYS' file, you
- just run CONFG in the same directory. It will read each line, and report
- any errors. If there are errors, it will stop after the last line is read.
- If no errors, it will finish up its processing, possibly ask you some
- questions and create all the required files.
- .SUBUNIT SYSOP_PARAMETERS
-
- .SUBUNIT USER_PARAMETERS
- User parameters is a catch all for most of the parameters related to user.
- Since the BBS is about users, nearly everything could be put into this
- catagory. There are three sets of parameters. The first is the `unlogged users'
- parameters. This is all the parameters relating to a user that has not
- logged in yet. The second is the `PRIVILEGES', the values given to a new
- user when their account is created. The last is the `user characteristics'.
- Each of these parameters must be setup and will define the way your BBS
- operates.
- .SUBUNIT unlogged users
- When a user first calls the BBS, they will get a set of default parameters
- that will define how the BBS operates until they login or create an account.
- If you do not allow them to create an account on their own, they will have
- to send you mail and you will have to do this manually(called account validation).
- Citadel allows you to operate either way. For unlogged users, the parameters
- are:
- .nf
- `#UNLOGGED-WIDTH' - The default width of a line
- `#LOGINOK' - Open/Close system control
- `#ENTEROK' - Can users enter messages while not logged in?
- `#READOK' - Can users read messages while not logged in?
- `#ANON-MAIL-LENGTH' - Limit on anonymous mail length to prevent `RUGGIES'
- `#LOGIN-ATTEMPTS' - Limit on how many times a user can make a mistake
- .SUBUNIT PRIVILEGES
- This section defines the user privileges, defaults and all related parameters.
- These parameters will save you some time and effort. If you have doors and want
- everyone to be able to play, it does not make sense to have to give everyone the
- privilege. Instead use these parameters to set the defaults.
- `#DOORPRIVS' - Allow new users to have access to doors
- `#ROOMOK' - Allow users to be able to create new rooms.
- `#ALLMAIL' - Control who can use mail
- `FILE-PRIV-DEFAULT' - Allow users to have file up/down load access
- .SUBUNIT user characteristics
- .SUBUNIT #BASEROOM
- Citadels always have a minimum of three rooms. There is the `Aide room',
- `Mail room', and the initial room a caller starts out in called the base room.
- Historically, the initial room was always called The Lobby. Most Citadels
- today have this configuration parameter which allows you to name that initial
- room.
- This parameter is a string value obeying formatting
- directives and goes through the Citadel formatter, and you must limit
- yourself to 19 characters or less for this value. And one more note --
- Citadel will append the '>' to this name when it prints the room prompt
- for this room, you don't have to put it in yourself. If you wished to
- emulate the old CP/M Citadel, you'd set baseRoom thus:
- #BASEROOM "Lobby"
- There is no default for this parameter.
- .SUBUNIT #MAINFLOOR
- MainFloor is analogous to #BASEROOM. Most Citadels have a base
- floor, just as it has an Aide> room, etc. This parameter allows you to
- name this base floor. This parameter is a string value which cannot be
- longer than 19 characters, and specifies the name of your base floor. So,
- if you want to name your base floor MAIN FLOOR, you'd have
- #MAINFLOOR "MAIN FLOOR"
- There is no default value for this parameter.
- .SUBUNIT areas
- The BBS is organized into what is called areas. These are directories that
- either Citadel creates files in, or uses to recieve temporary files from a
- network session, or user action. There are parameters for each of the
- major areas.
- .nofill
- `#HOMEAREA' - The root location of the BBS.
- `#HELPAREA' - Help files(`.HLP'), menus, and banners
- `#LOGAREA' - User data files
- `#ROOMAREA' - Room related files
- `#MSGAREA' - Message base
- `#FLOORAREA' - Floor related files
- `#AUDITAREA' - User, Door, and File activity
- `#HOLDAREA' - Hold area for user messages
- `#EDIT-AREA' - Editor area for a sysop editor(console only)
- `#NETAREA' - Network files area
- `#NET__RECEPT__AREA' - Receiving area for files sent to you
- `#DOMAINAREA' - Domain data files area
- .fill
- The `CONFG' program will require that you define each area and will create
- the directory if it does not exist.
- .SUBUNIT #HELPAREA
- This parameter specifies where all of your Help files will be located.
- These files are *.HLP, *.BLB, and *.MNU. Normally, you should create this
- directory and place the help files in the directory before bringing up
- Citadel-86, since help files are usually online at all times.
- #HELPAREA "cit:helps"
- The help files, menus and default bulletins are in the cithelps.lha
- file in the Citadel Documentation room. You will have to do some customization
- of these files for your system. If you find an error or re-write the
- contents of a file, try to return that file so that others will benifit from
- your work.
- .SUBUNIT #LOGAREA
- This parameter specifies the location of your `CTDLLOG.SYS' file (this
- file is sized by your `#LOGSIZE' parameter).
- #LOGAREA "cit:users" -- put it in a general system dir
- .SUBUNIT #ROOMAREA
- This parameter specifies the location of `CTDLROOM.SYS', `CTDLARCH.SYS',
- and `CTDLDIR.SYS'.
- #ROOMAREA "cit:room" -- another general system dir
- .SUBUNIT #MSGAREA
- This parameter specifies the location of `CTDLMSG.SYS'. It is also the
- location of the special Citadel message file `CIT__MESSAGES.SYS'. Citadel
- will create the message file when you run `CONFG', the other file is
- supplied with the executable archive.
- #MSGAREA "cit:messages" -- give msgs there own place in the sun
- .SUBUNIT #FLOORAREA
- This parameter specifies the location of `CTDLFLR.SYS'.
- #FLOORAREA "cit:floors"
- .SUBUNIT #AUDITAREA
- This parameter is a string value
- parameter specifying a directory which will hold the audit
- files. If this parameter is not present in your `CTDLCNFG.SYS' file, then
- the audit files will not be created or updated by Citadel.
- The audit files are usually text files of information on how the BBS is
- running. For example there is a file (`CALLLOG.SYS') which shows information
- on the callers. Another file keeps track of door usage (`DOORUSE.SYS'), and
- another one the file up/download information (`FILELOG.SYS').
- #AUDITAREA "c:audit" -- This can only be a subdirectory
- .SUBUNIT CIT__MESSAGES.SYS
- This file contains most of the Citadel BBS messages. The BBS references
- the text via the Message code. This allows the SYSOP the maximum flexibility
- in configuring their BBS. You can use the standard messages, or customize
- them to your heart's content.
- The Message file is formatted into one line per message. The first 8 columns
- may be A "#" for a comment line, or a message code. THE "#" in column 1 will
- cause the rest of the line to be ignored. Column 9 is blank, for readability,
- and columns 10 to 79 are the message text. If the message text starts with
- an "@", the message text is taken to be a filename and that file will be read
- instead as the message text. This will allow you to have more than one line
- in a single message. The message codes end in either EX for expert user
- messages, or NO for novice user message. If no EX version exists, the BBS
- will automatically use the NO version. If neither one exists, the BBS will
- display "***ERROR CODE nnnnnnnn" where nnnnnnnn is the missing message. If
- these occur, just create the appropriate message and add it to the file.
- If you find any message codes in the original file missing, then notify the
- Amiga Zone.
- One of the reasons for the message formatting is to get system dependant
- information from the BBS by using special variable names. These names are
- listed below:
- .nf
- .nap
- Variable Description
- ^variant Name of this Citadel Variant such as "Citadel 68K"
- ^version Major Version Id of Citadel
- ^sysvers Minor Version Id of Citadel
- ^baseroom The baseroom of your BBS
- ^sysop The name of the Sysop
- ^nodetitle The BBS Node Title
- ^nodename The BBS Node Name
- ^nodedomain The Domain the BBS is considered part of
- ^nodeid The BBS Node Id
- ^mainfloor The Floor that contains the BaseRoom
- ^curruser The name of the Current User.
- ^ulprotocols A list of the Protocols usable for uploading
- ^dlprotocols A list of the Protocols usable for downloading
- ^doorlist A list of the Doors available in the current room
- ^lastuser The last caller's name
- ^privileges A list of the privileges you currently have.
- ^callcount The number of calls this Citadel has recieved.
- ^ia1 Special Integer Argument #1 (see below)
- ^sa1 Special String Argument #1
- ^ia2 Special Integer Argument #2
- ^sa2 Special String Argument #2
- ^ia3 Special Integer Argument #3
- ^sa3 Special String Argument #3
- ^currtime The current time
- ^currdate the current date
- ^s A single space
- ^n A newline followed by a space
- .fill
- .autoparagraph
- The Special Arguments are pieces of data that are used in some of the
- existing messages. Currently the 3rd one is not used(but may be). Most
- of the messages do not use them, but those that do should probably continue
- to use them. You can remove the special variable from the messages that
- currently do use them, but adding them to a message that does not will get
- you a zero for an interger argument and nothing for a string argument.
- It is best to keep the original message file around to check to see what
- was available for the code.
- .SUBUNIT CALLLOG.SYS
- CALLLOG.SYS contains three types of notes. The first type lists when
- the system has come up and down.
- The second type records who has called, listing login and logout times,
- one line per person, in the following format:
- <person> : <login time> - <logout time> <baud rate>
- Occasionally such a line will have an extra character appended onto it,
- and they have the following significance.
- .nofill
- '+' The user logged in as new.
- '-' The user used .TS to logout.
- 'T' The user timed out on the system.
- 'E' The user hit the error limit on the system and was kicked off.
- 'B' The system kicked the user off for too many offenses against `BADWORDS.SYS'.
- 'C' The user tried to chat with you.
- .fill
- The third type of message in CALLLOG.SYS are notes regarding network
- sessions, both normal and anytime-net. These record on a single line
- the start and end times of the net sessions. This particular message can
- be disabled by using the #CLEAN-CALLLOG parameter.
- .SUBUNIT FILELOG.SYS
- FILELOG.SYS format is somewhat different. Generically, it looks like
- this:
- <user name> @ <baud rate>
- file1 (n bytes) <roomname> <U or D> <start to end> <length> <protocol>
- [FAILED]
- file2 (n bytes) <roomname> <U or D> <start to end> <length> <protocol>
- [FAILED]
- This format keeps the number of user names down. "n bytes" is the size
- of the file. "roomname" is the room involved. "U or D" refers to whether
- the named file was Uploaded or Downloaded. "start to end" refers to start
- time and end time of the file session, while length is the amount of time
- involved. Protocol will be one of the three XMODEM, YMODEM, or WXMODEM, or
- an external one you have setup.
- "FAILED" will only appear on the line if the transfer failed.
- .SUBUNIT DOORUSE.SYS
- DOORUSE.SYS simply lists who used what doors for what amount of time
- at what time of the day. It appears in the `#AUDITAREA'.
- .SUBUNIT #HOLDAREA
- Citadel has an optional capability to save a user's messages, put them on
- hold so to speak. This can be because the user lost carrier while entering
- a message, or told the BBS to Hold the message for later. The reason this
- is optional, is that if you do not specify this area, a user will not be able
- to use this option and any message held will be lost when the user terminates
- the session. A held file takes about 8K bytes of space on the disk. It is
- possible that every user could have a held message at one time, each is uniquely
- identified so in figuring disk space, this should be remembered.
- #HOLDAREA "hold"
- .SUBUNIT #EDIT-AREA
- The optional edit area goes along with the sysop editor directive `#EDITOR'
- which is used to define a directory where the BBS will put the temporary
- message file and run the sysop editor(this is for the console user only).
- This is like any BBS area.
- #EDIT-AREA "RAM:"
- .SUBUNIT #EDITOR
- This is the command that is used to run the optional Console user editor.
- When a user is logged into the console, this command is used to invoke the
- external program to edit the message text(will be written to tempmsg.sys in
- this area). This command should specify any options needed to make the
- editor run and have the BBS pause while the editor is running(some editors
- will release the task as soon as they startup which will make Citadel think
- your done editing).
- #EDIT-AREA "TTX WAIT"
- .SUBUNIT #NETAREA
- This command tells the BBS where to put the files that are related to the
- network process. It is like any other BBS area.
- #NETEAREA "NET"
- .SUBUNIT #NET__RECEPT__AREA
- This is a special BBS directory that is used to store all files sent to your
- system by another system during a network session. When a system uses the
- Send File faculty(not the same as requesting a file over the network).
- #NET__RECEPT__AREA "Recieving"
- Files sent to your BBS using the utility `AFF' will appear in this area. In
- addition, the parameters `#NET__AREA__SIZE' and `#MAX__NET__FILE' will be used to
- limit the amount of files and the largest file in this area.
- .SUBUNIT #NET__AREA__SIZE
- This parameter controls the total amount of space you wish to allow files
- coming into your system via the net(Send File Command). This is the limit
- on files being sent to your without you asking. If this area fills up to
- this size, additional files will be rejected.
- .SUBUNIT #MAX__NET__FILE
- This parameter controls the size of the largest file your will allow to be
- sent to you during a network session. Files larger than this size will be
- rejected.
- .SUBUNIT #DOMAINAREA
- This parameter specifies the area where Citadel will put the domain related
- temporary files. The files in this area are dynamic. Citadel will create
- them as needed and maintain them totally. You will not need to worry about
- these files unless there is a problem with domain mail and you are the server
- for your domain. This is a fairly advance topic and not covered in this
- document. Eventually, there will be a separate document for these types of
- issues.
- .SUBUNIT basic system parameters
- The basic system parameters define how many `rooms'(`#MAXROOMS'),
- messages per room(`#MSG-SLOTS'), private mail messages per user(`#MAIL-SLOTS'),
- Size of the message base(`#MESSAGEK') and if you will want it encrypted
- (`#CRYPTSEED'). You want to give some careful thought to these parameters
- since any choices made now will be a bit painful to modify later. There are
- `utilties' that will allow parameters to be modified, but only to increase them.
- To decrease them requires that you start over by deleting the appropriate
- files and reconfiguring.
- I recommend that you keep `#CRYPTSEED' at zero
- although any value can be used. It makes debug easier for me if I grab
- your files plus that value will speed up all the processing.
- The message slots and size of the message base is a little cryptic. If
- you have 100 slots, then Citadel will remember the last 100 messages in
- each room. Mail has a separate value, but it is the same idea. With
- 100 rooms, you have 10,000 active messages possible in the system. With
- messages sizing from 500 bytes to 7500 bytes, you could have a message
- base of 5,000,000 to 75,000,000! Typically the average message is alot
- closer to the 500 bytes size. The 600K size here gives me a file that is
- 1217 blocks in size(614400 bytes). This would actually fit on a floppy
- if you wanted(although it would pretty much fill the floppy).
- You can make these pretty much any value you want, the larger the value
- the more the disk space needed. A reasonable approximation for messagek
- is:
- ( MSG-SLOTS + MAIL-SLOTS ) * 2.75K
- ( 120 + 99 ) * 3K = 602.25
- You can use more.....
- For the larger sized system, use 7.5K and get 1604K...
- The practical limit is 4095K
- .SUBUNIT #CRYPTSEED
- CRYPTSEED is a value used in encrypting the data files. Choose a
- value when you install the system, but not thereafter -- or you
- won't be able to read the existing files any more. If you use a value of
- zero, none of the data files will be encrypted. This has little value since
- you as SYSOP can access anybody's account and read any message, there is no
- privacy. I recommend using zero. You should not allow any of the system
- files to be downloaded and this is the only protection you have if you do.
- It is better to keep the users out of the data files. Using zero has an
- additional benifit that your system will be slightly faster. If you use a
- non zero encryption seed, all the data files will be encoded. An example
- is:
- #CRYPTSEED 1234
- It is important that you do not change this value. If for some reason you
- should lose your `CTDLCNFG.SYS' file, run the `VERIFY' utility and it will
- display not only this value, but the value of all the important data from
- this file. Without this data item, you will not be able to reconfigure
- your BBS. This is important since if the bbs should crash, or your system
- should go down while the bbs is running, you have to run the CONFG utility
- to recreate the data file `CTDLTABL.SYS'. Without that file, the BBS will
- not run. There is only one parameter on the command line. If it does not
- match "onlyParams" or "FirstInit" then CONFG will assume you are re-initializing
- the BBS. "FirstInit" assumes that you want to create the BBS from scratch
- initializing all the files as if creating a new BBS. This means that if you
- already have a BBS up and running, all the data files will be re-created and
- initialized as empty(i.e all existing users deleted, all messages gone). You
- can use this the first time and CONFG will not ask you any questions about
- creating this file or that one... Once you have a running BBS and you need
- to modify certain parameters(see `Safe Configuration Parameters')
- .SUBUNIT Safe Configuration Parameters
- These parameters control characteristics of the BBS and not file sizes. You
- can modify these at any time by changing the value in the `CTDLCNFG.SYS' file
- and then running "CONFG ONLYPARAMS". To do this, change the file, bring the
- BBS down, then run CONFG and then restart the BBS.
- .SUBUNIT #NODEID
- As mentioned, this parameter is a network parameter that has
- traditionally always been set, even for non-network Citadels. If you have
- no plans to ever be on a `C86Net', Then this is not real important.
- If you do plan to join the `C86Net',
- (we'll go over this in more detail in the section on `Networking'),
- then you do have to set this parameter correctly. The format of this
- parameter is
- "<Country code><Area Code><Phone number>"
- all of which applies to the phone your system resides on. Country
- code is a two letter sequence indicating what country you live in (US is
- the United States, CA is Canada. Other country codes may be found in
- COUNTRY.DOC). Area code is the area code of your system (yes,
- we are aware there is a clear bias towards US-style telephony). And
- Phone number is, of course, the phone number your system is on. You
- can put punctuation (such as parenthesis and dashes), but please be
- conservative with them. This string value does not obey formatting
- directives. Here's a fairly generic example:
- #NODEID "US (609) 953 8159" -- Some system somewhere..:)
- Other systems will use your node id to call you for networking. It
- will be how other systems identify your system's messages.
- .SUBUNIT #NODENAME
- nodeName is, in reality, purely a network parameter, and if you have no
- plans to ever join a `C86Net', then there is no need to fill in this
- parameter. However, it has always been traditional, even before there was
- a net for any Citadel system anywhere, to fill in this and the `#NODEID'
- parameter. nodeName is a string value which does NOT accept
- formatting directives (i.e., formatting directives will be ignored). It
- can be no longer than 19 letters long. It should be a short, mnemonic
- name for your system. An EXAMPLE of a reasonable value:
- #NODENAME "ODD-DATA" -- The original Citadel
- If you ever do join a `C86Net', messages from your system appearing on
- another Citadel-86 node will look something like this
- 82Nov23 from Cynbe ru Taren @ODD-DATA
- except ODD-DATA would be replaced with your value for #NODENAME.
- .SUBUNIT #NODETITLE
- The first parameter you should find is called nodeTitle. It is a string
- value obeying formatting directives, and is subject to formatting
- considerations. nodeTitle is the title of your installation printed when
- carrier is detected on your system. More precisely, nodeTitle will show
- up in the following place on your system:
- Welcome to <#NODETITLE>
- However, nodeTitle may not necessarily be printed at this point. After
- successfully bringing your system up, please consult the section
- on Help Files for more information on banner options. EXAMPLE:
- #NODETITLE "Test System\n Truly a Heaven in Reverse"
- The #NODETITLE is printed out on .Read Status commands, also. There is no
- formal limit on the length of this parameter.
- .SUBUNIT banners
- .SUBUNIT The Amiga Zone
- The Amiga Zone is the primary support BBS. The number is (609) 953-8159.
- There are other Citadels that will help the budding Sysop out, but this is
- the place you will find the latest and greatest version of Citadel, CONFG,
- and the Utilities. In addition to calling direct, you should think about
- networking the Citadel 68K room. This is the place where comments, bug
- reports, and other issues are discussed. The Amiga Zone will feed the room
- to any Citadel that wishes to network, however, the Amiga Zone will not call
- out for a network session unless the system is local. You will have to pay
- for the calls. This does not amount to much if you call a few times a week.
- Fortunately, there are about 200 Citadels in the USA and Canada, you might
- find a local system to network with, or one that costs less than the Amiga
- Zone to network with. If you wish, I will answer questions at my internet
- address "apreston@isd.csc.com" or "tony-preston@cup.portal.com".
- .SUBUNIT #LOGSIZE
- This numerical parameter gives you the ability to decide
- how many accounts will be available on your system. If you run a system
- in which more accounts are used than there are accounts reserved, then new
- accounts are generated by killing old accounts. Accounts are recycled
- by finding the account who's last use is the oldest of all the accounts
- in the system, under the assumption such an account is no longer active.
- All space is reserved immediately for these accounts. The size of
- this file can be estimated from the formula(this includes a possible held
- file for every USER).
- # of bytes = LOGSIZE * (82 + MAXROOMS + (6 * MAIL-SLOTS) + 8092)
- so if you are operating in a restricted environment, plan accordingly.
- If you need to, you can expand the size of the log through the use of
- the `DATACHNG' utility, but the log cannot be shrunk. This is a numerical
- value. Here is an example:
- #LOGSIZE 200
- For a system with 100 rooms(`#MAXROOMS'), and 100 mail slots(`#MAIL-SLOTS')
- this would be just over 150K bytes for 200 users.
- It should be noted that the larger the logsize, the longer the `CONFG'
- utility will take to re-configure the system. Each entry is checked and
- updated when this is done.
- .SUBUNIT #MAXROOMS
- This numerical parameter specifies the maximum number of rooms your
- system will support. Since the baseRoom, Aide>, and Mail> room are
- necessary, the smallest value you can give is 3. The largest number is
- 65536. If you wanted to have a 64 room system, you'd have
- #MAXROOMS 64
- You can use the following formula to estimate the number of bytes a
- room file will take up on your SYSTEM:
- # of bytes = MAXROOMS *(50 + (6 * MSG-SLOTS))
- For a system with 100 rooms and 200 message slots(`#MSG-SLOTS'), you
- would need aproximately 125 Kbytes of disk space. It should be noted that the
- larger this is, the longer the `CONFG' takes since each room is updated.
- .SUBUNIT #MAIL-SLOTS
- This is a numerical parameter specifying how many messages per log
- record you wish to reserve for Mail. The Mail> room is the only
- room in the system whose data is not kept in CTDLROOM.SYS. Instead, the
- file CTDLLOG.SYS contains the "Mail>" room, reserving for each account
- enough room for MAIL-SLOTS Mail messages. Therefore, this parameter gives
- you the ability to decide the maximum number of Mail> messages per user
- they can access. Please remember if a user gets more messages
- in Mail> than there are MAIL-SLOTS between two successive logins, then
- they will lose the earlier messages sent to them. Another consideration
- is many users like to review old Mail when engaged in an in-depth
- private conversation. Therefore, setting MAIL-SLOTS to a low value may
- not be the attractive alternative it first seems. However, it should
- go without saying a high MAIL-SLOTS value may eat up more room than
- necessary on your drives. The section on `#LOGSIZE' will give an exact
- formula for how much space your log will take up.
- .SUBUNIT #MESSAGEK
- MESSAGEK defines how much disk space you wish to allocate for messages
- on your installation. Because messages can vary in size, there is no way
- to define how many messages you can
- have in your system, or how fast they turnover. All the messages in your
- system will reside in CTDLMSG.SYS, and thus the number of messages in your
- system at any given moment will depend totally on the length of the messages
- being entered into the system by your users. The turnover rate of your
- messages will depend on how busy your system is.
- For example, if you reserve 600K for messages, you would have an approximate
- 1200 messages(messages can get as large a 7500 characters so if you have verbose
- users, this could be as low as 80 messages if they were all to the limit, a
- good conservative estimate is 512 characters which gives 1200 messages). If
- you get 25 callers a day and each posted 4 messages, you would have a
- turnover of about 12 days. If you networking and get 25 messages a day
- in 4 rooms, plus these callers, you have a 6 day turnover. The higher the
- volume, the quicker the turnover. When the messages turnover, older message
- space gets reused which means older messages are deleted. Shared rooms can
- have a very high volume.
- The sysop of an installation should also keep in mind that very large
- systems, with many new messages, can be intimidating to new users, so
- large message spaces should be approached with caution. Remember, there
- is a utility(`Expand') for expanding the message base, but not for shrinking
- it. The only method available to shrink the message base is to delete the
- existing one and then reset this value to a smaller amount. You will lose
- all the messages(including mail) if you do this.
- This is a numerical value which you specify in 'K', which is actually
- 1024 bytes/K. So, for example, to specify a 250K message file
- #MESSAGEK 250 -- 250K message base
- The above parameter will require 250 Kbytes of disk space.
- .UNIT Utilities
- .UNIT Installation
- .UNIT C86Net
- .UNIT BBS List
- .UNIT Citadel
- .UNIT Files
- This section details the various files that exist in the Citadel BBS system.
- Most of these files are maintained by the BBS software and you only need to know
- a general idea of why they are there and how big they will be. Some have particular
- formats and must be maintained by the Sysop. The files are:
- `debug.sys' - System debug information
- `crash.sys' - System failure message
- .SUBUNIT debug.sys
- This file is only generated if the `#AuditArea' is defined. It will be generated
- only if the debug sysop option is turned on or there is a serious error or problem
- and the system needs to report information. Most of the entries in this file are
- also displayed on the console. This is a log that should be examined for problems
- that could occur in your setup. Generally, if you have a problem and want someone
- to assist you, it would be a good idea to make this file available(in other words
- don't delete until your sure it wont be needed).
- .SUBUNIT crash.sys
- This file usually contains only a single error message. It is used to display
- information about a failure while the BBS was initializing and did not have the
- screen and windows open to report the problem. This file will occur in the
- current directory which might not be `#HOMEAREA', since the BBS is going to stop
- itself immediately.